// Pointer.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <time.h>
#define ARR 5
#define NR 5
#define NC 5
using namespace std;

void pointer_funzione(int a, char b, long c, float d, double e, int ar[], char ra[], int y[][NC]);

int main()
{
	int a, ar[ARR], y[NR][NC];
	char b, ra[ARR];
	long c;
	float d;
	double e;
	printf("Fuori dalla funzione: \n");
	printf("Indirizzo di a: %p\nIndirizzo di b: %p\nIndirizzo di c: %p\nIndirizzo di d: %p\nIndirizzo di e: %p\n\n", &a, &b, &c, &d, &e);
	for(int j=0;j<ARR;j++)
	printf("Indirizzo di ar[%d]: %p\tIndirizzo di ra[%d]: %p\n", j, &ar[j], j, &ra[j]);
	printf("\n");
	for(int j=0;j<NR;j++)
	for(int i=0;i<NC;i++)
	printf("Indirizzo di y[%d][%d]: %p\n", j, i, &y[j][i]);
	pointer_funzione(a, b, c, d, e, ar, ra,y);
	system("pause");
    return 0;
}


void pointer_funzione(int a, char b, long c, float d, double e, int ar[], char ra[], int y[][NC])
{
	printf("\nDentro la funzione: \n\n");
	printf("Indirizzo di a: %p\nIndirizzo di b: %p\nIndirizzo di c: %p\nIndirizzo di d: %p\nIndirizzo di e: %p\n\n", &a, &b, &c, &d, &e);
	for (int j = 0; j<ARR; j++)
	printf("Indirizzo di ar[%d]: %p\tIndirizzo di ra[%d]: %p\n", j, &ar[j], j, &ra[j]);
	printf("\n");
	for (int j = 0; j<NR; j++)
	for (int i = 0; i<NC; i++)
	printf("Indirizzo di y[%d][%d]: %p\n", j, i, &y[j][i]);
}